90 JavaScript知识点总目录
> Last Format Time:8/11/2026 21:45:41
> 本目录是两套旧教程合并后的逐文件、逐标题覆盖清单。它用于证明知识没有因主题合并而消失,并提供到新笔记原始整合区的直接入口。
覆盖验收
- 旧笔记:72/72 份已唯一映射到新主题笔记。
- 原标题:350 项已保留并列入本目录。
- 合并基线:曾对 2,827 行有效正文和 772 个代码块完成逐项匹配。
- 当前状态:已知错误已直接修正或就地标注,因此错误片段不再追求与旧教程逐字一致;详见 [91 JavaScript修正与补充记录](./91 JavaScript修正与补充记录.md)。
- 阅读规则:先读各主题的“当前前端开发关键要点”和“现代前端补充与纠错”,再按需查阅“旧笔记知识全集”。
- 说明:原始教程中的错误和过时内容为保证覆盖审计而保留,不能覆盖纠错区的当前结论。
[01 JavaScript基础](./01 JavaScript基础.md)
[现代JS教程与阮一峰ES6 · 0基础简介/JS基础知识](./01 JavaScript基础.md)
- JS基础
- 严格模式
- 在浏览器与用户交互的函数
- alert
- prompt
- confirm
- 数学运算
- 严格相等
- 条件分支
- 逻辑运算符
- 空值合并??
- 循环
- 函数
- 箭头函数
- 对象
- 垃圾回收
- 对象属性函数:方法
- 可选链 ?.
- symbol类型
- 对象原始值转换
[现代JS教程与阮一峰ES6 · 1数据类型与变量/var let const](./01 JavaScript基础.md)
- const
- 顶层对象
- 暂时性死域
[廖雪峰教程 · 2历史背景/2.1 JS历史](./01 JavaScript基础.md)
- JS历史
- ECMAScript
- JavaScript版本
[廖雪峰教程 · 3快速入门/3.1基本语法](./01 JavaScript基础.md)
- 基本语法
- 注释
- 大小写
[廖雪峰教程 · 3快速入门/3.6 条件判断](./01 JavaScript基础.md)
- 条件判断
- 多行条件判断
[廖雪峰教程 · 3快速入门/3.7 循环](./01 JavaScript基础.md)
- 循环
- for ... in
- while
- do ... while
[02 类型系统与类型转换](./02 类型系统与类型转换.md)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/数据类型与转换](./02 类型系统与类型转换.md)
- 数据类型与转换
- 数据类型
- 原始类型(Primitive,7 种)
- 对象类型(Object)
- 类型判断
- typeof 运算符
- instanceof
- Object.prototype.toString.call()
- 其他辅助方法
- 原始类型的"包装对象"
- 类型转换
- 显式转换
- 隐式转换(自动发生)
[廖雪峰教程 · 3快速入门/3.2 数据类型与变量](./02 类型系统与类型转换.md)
- 数据类型与变量
- 数据类型
- Number
- 字符串
- 布尔值
- 比较运算符
- BigInt
- null和undefined
- 数组
- 对象
- 变量
- strict模式
[03 Number与String](./03 Number与String.md)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Number](./03 Number与String.md)
- Number API
- 数字类型
- 浮点数的底层实现
- 总结
[现代JS教程与阮一峰ES6 · 1数据类型与变量/String](./03 Number与String.md)
- String
- 字符串
[廖雪峰教程 · 3快速入门/3.3 字符串](./03 Number与String.md)
- 字符串
- 多行字符串
- 模板字符串
- 操作字符串
- toUpperCase
- toLowerCase
- indexOf
- substring
[04 Array数组](./04 Array数组.md)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Arrray](./04 Array数组.md)
- Array API
- 数组
[廖雪峰教程 · 3快速入门/3.4 数组](./04 Array数组.md)
- 数组
- indexOf
- slice
- push和pop
- unshift和shift
- sort
- reverse
- splice
- concat
- join
- 多维数组
[05 Object对象](./05 Object对象.md)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/对象](./05 Object对象.md)
- Object API
- 对象的keys,values,entries
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/对象的属性配置](./05 Object对象.md)
- 对象属性标志(数据描述符
- 属性的访问器属性(存取描述符)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/对象的循环引用与深克隆 ⌚️](./05 Object对象.md)
- 对象的循环引用
- 深拷贝与浅拷贝
[廖雪峰教程 · 3快速入门/3.5 对象](./05 Object对象.md)
- 对象
[06 集合与迭代](./06 集合与迭代.md)
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/for...in与for...of](./06 集合与迭代.md)
- JS中 for...in 和 for...of 的核心区别(超清晰版)
- 一句话总结
- 遍历的内容不同(最核心区别)
- for...in
- for...of
- 适用数据类型不同
- for...in
- for...of
- 遍历数组时的表现差异(重点)
- 支持的语法特性
- 最佳使用场景(背会就不会用错)
- ✅ 用 for...in 的场景
- ✅ 用 for...of 的场景
- 极简记忆口诀
- 总结
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/可迭代对象](./06 集合与迭代.md)
- 可迭代对象
[现代JS教程与阮一峰ES6 · 1数据类型与变量/Object/类数组](./06 集合与迭代.md)
- 类数组
[现代JS教程与阮一峰ES6 · 5特殊内建对象/Map和Set](./06 集合与迭代.md)
- JavaScript中Map的实现原理
- 核心实现:哈希表
- 关键技术点与优化
- 哈希冲突处理
- 键的多样性支持
- 迭代顺序维护
- 总结:实现效果的原因
- 与Object的对比
- Map Set 映射和集合
- Map
- Set
- 弱映射和弱集合
- Set 的基本特性
- Set 的常用方法与属性
- 基本操作
- 示例:
- 遍历方法
- 示例:
- Set 的典型应用场景
- 与数组的区别
- 总结
[廖雪峰教程 · 3快速入门/3.8 Map与Set](./06 集合与迭代.md)
- Map与Set
- Map
- Set
[廖雪峰教程 · 3快速入门/3.9 iterable](./06 集合与迭代.md)
- iterable
[07 函数、作用域与this](./07 函数、作用域与this.md)
[现代JS教程与阮一峰ES6 · 2函数/作用域、闭包和this](./07 函数、作用域与this.md)
- 变量作用域
- 闭包
- this
[现代JS教程与阮一峰ES6 · 2函数/函数进阶](./07 函数、作用域与this.md)
- new function
- setTimeOut setaInterval
- 函数绑定
- 透明缓存
- 手动实现call、apply与bind
- 实现 call
- 实现 apply
- 实现 bind
- softBind
- 函数参数Params和arguments对象
- rest和spread
- 全局对象
- 函数对象
[现代JS教程与阮一峰ES6 · 2函数/扩展运算符](./07 函数、作用域与this.md)
- 展开可迭代对象(拆分为单个元素)
- 收集剩余元素(合并为数组)
- 浅拷贝对象或数组
- 二、扩展运算符与
apply的对比 - 三、注意事项
- 总结
[现代JS教程与阮一峰ES6 · 2函数/箭头函数](./07 函数、作用域与this.md)
- 箭头函数
[现代JS教程与阮一峰ES6 · 2函数/解构赋值与剩余模式(ES6)](./07 函数、作用域与this.md)
- 数组的解构赋值
- 嵌套数组解构
- 对象的解构
- 剩余模式:...
[廖雪峰教程 · 4函数/4.1 函数的定义与调用](./07 函数、作用域与this.md)
- 函数的定义与调用
- 定义函数
- 调用函数
- arguments
- rest参数
- 小心你的return语句
[廖雪峰教程 · 4函数/4.2 变量作用域与解构赋值](./07 函数、作用域与this.md)
- 变量作用域与解构赋值
- 变量提升
- 全局作用域
- 名字空间
- 局部作用域
- 常量
- 解构赋值
- 使用场景
[廖雪峰教程 · 4函数/4.3 方法](./07 函数、作用域与this.md)
- 方法
- apply
- 装饰器
[廖雪峰教程 · 4函数/4.4 高阶函数](./07 函数、作用域与this.md)
- 正文主题:4.4 高阶函数
[廖雪峰教程 · 4函数/4.5 闭包](./07 函数、作用域与this.md)
- 闭包
- 函数作为返回值
- 闭包
[廖雪峰教程 · 4函数/4.6 箭头函数](./07 函数、作用域与this.md)
- 箭头函数
- this
[廖雪峰教程 · 4函数/4.7 标签函数](./07 函数、作用域与this.md)
- 标签函数
[08 原型、构造函数与类](./08 原型、构造函数与类.md)
[现代JS教程与阮一峰ES6 · 2函数/构造函数与New](./08 原型、构造函数与类.md)
- 构造函数
- 手动实现一个new
[现代JS教程与阮一峰ES6 · 4原型与类/原型](./08 原型、构造函数与类.md)
- 构造函数的Prototype
- 原生的原型
- 原型方法和没有__proto__的对象
[现代JS教程与阮一峰ES6 · 4原型与类/原型链](./08 原型、构造函数与类.md)
- 原型链
[现代JS教程与阮一峰ES6 · 4原型与类/类](./08 原型、构造函数与类.md)
- 基本语法
- 类表达式
- Getters/setters
- 计算属性名称
- “类字段”
- 类继承
- 重写方法
- 静态属性和静态方法
- 受保护的、私有的属性和方法
- 私有的属性
- 扩展内建类(使用内建类做父类)
- 类检查
- Mixin模式
- 🤔 为什么需要 Mixin 模式?
- 🛠️ 如何实现 Mixin 模式?
- 使用
Object.assign()进行属性复制 - 使用高阶函数(类工厂)
- ✨ Mixin 模式的优缺点
- 优点
- 缺点
- 🌐 实际应用:Vue.js 中的 Mixin
[廖雪峰教程 · 6对象/6.0 简述](./08 原型、构造函数与类.md)
- 正文主题:6.0 简述
[廖雪峰教程 · 6对象/6.1 创建对象](./08 原型、构造函数与类.md)
- 创建对象
- 构造函数
- 忘记写new怎么办
[廖雪峰教程 · 6对象/6.2 原型继承](./08 原型、构造函数与类.md)
- 原型继承
[廖雪峰教程 · 6对象/6.3 类的继承](./08 原型、构造函数与类.md)
- 类的继承
- class继承
[09 Generator与异步迭代](./09 Generator与异步迭代.md)
[现代JS教程与阮一峰ES6 · 2函数/Generator函数](./09 Generator与异步迭代.md)
- generator是可迭代的
- generator是可以组合的
[现代JS教程与阮一峰ES6 · Generator&Iteration/Generator](./09 Generator与异步迭代.md)
- Generator
- generator 函数
- generator 是可迭代的
- 使用 generator 进行迭代
- generator 组合
- yield向内部传值
- generator.throw
- generator.return
- 总结
[现代JS教程与阮一峰ES6 · Generator&Iteration/异步迭代](./09 Generator与异步迭代.md)
- 异步迭代
[廖雪峰教程 · 4函数/4.8 生成器](./09 Generator与异步迭代.md)
- 生成器
[10 异步编程](./10 异步编程.md)
[现代JS教程与阮一峰ES6 · 6异步编程/Promise与回调](./10 异步编程.md)
- 回调
- Promise
- Promise链
- 错误处理
- Promise的静态方法(API)
- all
- allSettled:
- Promisification
- 微任务
- async/await
[廖雪峰教程 · 7浏览器/7.5 Promise](./10 异步编程.md)
- Promise
- 手撸代码
- 💡 Promise 基础
- 🤔
Promise是如何实现异步的? - 执行顺序解析
- 📌 核心要点
- 🤝 Promise.all 实现
- 🏎️ Promise.race 实现
- ✨ Promise.any 实现
- 📝 总结
- 🛠️ 实现 Promise.map
- 📝 使用示例
- ✨ 进阶:增加并发限制
- 📌 总结
[廖雪峰教程 · 7浏览器/7.6 async](./10 异步编程.md)
- async
[11 浏览器与DOM](./11 浏览器与DOM.md)
[廖雪峰教程 · 7浏览器/7.1DOM/7.1.1 浏览器对象](./11 浏览器与DOM.md)
- 浏览器对象
- window
- navigator
- screen
- location
- document
- history
[廖雪峰教程 · 7浏览器/7.1DOM/7.1.2 操作DOM](./11 浏览器与DOM.md)
- 操作DOM
- 更新DOM
[廖雪峰教程 · 7浏览器/7.1DOM/7.1.3 插入DOM](./11 浏览器与DOM.md)
- 插入DOM
- insertBefore
[廖雪峰教程 · 7浏览器/7.1DOM/7.1.4 删除DOM](./11 浏览器与DOM.md)
- 删除DOM
[廖雪峰教程 · 7浏览器/7.2 表单](./11 浏览器与DOM.md)
- 表单
- 获取值
- 设置值
- HTML5控件
- 提交表单
[廖雪峰教程 · 7浏览器/7.4 AJAX](./11 浏览器与DOM.md)
- AJAX
- 安全限制
- CORS
[廖雪峰教程 · 7浏览器/7.7 Canvas](./11 浏览器与DOM.md)
- Canvas
- 绘制形状
- 绘制文本
[12 二进制与文件](./12 二进制与文件.md)
[现代JS教程与阮一峰ES6 · 5特殊内建对象/二进制与文件读取/二进制](./12 二进制与文件.md)
- ArrayBuffer、TypedArray 与 DataView 详解
- ArrayBuffer - 原始二进制数据缓冲区
- TypedArray - 类型化数组视图
- TypedArray 的特点
- 常见的 TypedArray 类型
- 基本创建与使用
- 直接初始化
- TypedArray 与普通数组的核心区别
- DataView - 灵活的数据访问视图
- 内存布局与字节序
- ==实际应用示例==
- 性能优化与使用场景
- 与 Blob 的转换
- Blob、File 与 Object URL 详解
- Blob 对象
- File 对象
- FileReader 读取文件内容
- Object URL
- Base64 与 DataURL
- Data URL
- 关系
- 内存管理最佳实践
- 使用场景对比
- MIME
- 类型(Type)
- 子类型(Subtype)
- 常见 MIME 类型示例
- 重要参数:
charset - 在实际中的应用
[现代JS教程与阮一峰ES6 · 5特殊内建对象/二进制与文件读取/最佳实践](./12 二进制与文件.md)
- 正文主题:最佳实践
[廖雪峰教程 · 7浏览器/7.3 文件](./12 二进制与文件.md)
- 文件
- File API
- 回调
[13 标准内建对象](./13 标准内建对象.md)
[现代JS教程与阮一峰ES6 · 5特殊内建对象/Date](./13 标准内建对象.md)
- Date
[现代JS教程与阮一峰ES6 · 5特殊内建对象/JSON](./13 标准内建对象.md)
- JSON
[现代JS教程与阮一峰ES6 · 5特殊内建对象/Proxy与Reflect](./13 标准内建对象.md)
- Reflect
[廖雪峰教程 · 5标准对象/5.1 简述](./13 标准内建对象.md)
- 包装对象
[廖雪峰教程 · 5标准对象/5.2 RegExp](./13 标准内建对象.md)
- 进阶
- RegExp
- 切分字符串
- 分组
- 贪婪匹配
- 全局搜索
[14 模块化](./14 模块化.md)
[现代JS教程与阮一峰ES6 · 7模块/CJS和ESM](./14 模块化.md)
- 核心区别对比表
- 详细解释
- 来源与历史
- 语法
- 加载方式:静态 vs. 动态
- 加载时机:同步 vs. 异步
- 值引用 vs. 值拷贝
- 运行环境
- 总结与如何选择
[现代JS教程与阮一峰ES6 · 7模块/Module(模块)语法](./14 模块化.md)
- 导入导出类型不匹配错误
- 路径错误
- 重复导入
- 导出变量未定义
- 循环依赖
- 导入导出的语法错误
[15 错误处理](./15 错误处理.md)
[现代JS教程与阮一峰ES6 · 3错误处理/错误处理](./15 错误处理.md)
- try...catch
- Error对象
- 自定义Error,Error的继承
[廖雪峰教程 · 8错误处理/8.0 简介](./15 错误处理.md)
- 简介
- try ... catch ... finally
- 错误类型
- 抛出错误
[廖雪峰教程 · 8错误处理/8.1 错误传播](./15 错误处理.md)
- 错误传播
[廖雪峰教程 · 8错误处理/8.2 异步处理](./15 错误处理.md)
- 异步处理
[16 JSDoc](./16 JSDoc.md)
[现代JS教程与阮一峰ES6 · 0基础简介/JSDoc](./16 JSDoc.md)
- 基本语法和规范
- 类型声明
- 应用到不同的代码结构
- 配合工具使用